home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
17 Bit Software 1: Collection A
/
17Bit_Collection_A.iso
/
files
/
37.dms
/
37.adf
/
the demo.bas
< prev
next >
Wrap
BASIC Source File
|
1988-05-22
|
10KB
|
317 lines
5 goto 300
10 AUDIO 15,1
11 A$ = TRANSLATE$("HELLO I AM THE NEW AMIGA PERSONAL COMPUTER FROM COMMODORE!")
12 B$ = TRANSLATE$("I HAVE A SHORT DEMO FOR YOU TO SEE. BUT FIRST I WANT TO TELL YOU A LITTLE ABOUT MYSELF.")
13 C$ = TRANSLATE$("FIRST OFF I AM RUNNING IN AE BASIC CREATED BY METACOMP, FOR THE AMIGA, IT CAME FREE WITH ME.")
14 D$ = TRANSLATE$("I HAVE BUILT IN SPRITES ,BLITTERS ,SPEECH SYNTHISYS ,STEREO SOUND ,AND I AM I.B.M COMPATIBLE. THE LIST GOES ON AND ON.")
15 E$ = TRANSLATE$("I HAVE GRAPHIC CAPABILITIES THAT WILL BLOW YOUR MINDTHEY ARE SECOND TO NONE LISA MY GRAPHICS CHIP HANDLES THAT.")
16 F$ = TRANSLATE$("MY SOUND IS EXCELENT THANKS TO DAFNEE MY SOUND CHIP SHE MADE THIS PROGRAM SO EASY.")
17 X% = NARRATE (A$)
18 X% = NARRATE (B$)
19 X% = NARRATE (C$)
20 X% = NARRATE (D$)
21 X% = NARRATE (E$)
22 X5 = NARRATE (F$)
23 SCNCLR
24 c = 1 : x = 10 : y = 10 : d = 10 : h = 1
25 penb 2
26 paint (0,50)
27 circle (x,y), d, h
28 x1 = x1+3
29 y = y+3
30 d = d+2
31 peno c
32 c = c + 1
33 if c = 31 then c = 1
34 circle (x1,y), d, h
35 IF Y = 166 THEN SLEEP 5*10^6 :SCNCLR :GOTO 37
36 goto 28
37 CIRCLE (145,90), 0, 1
38 penb 4 : paint (0,0) :c = 1 : peno c
39 S1 = S1+1
40 c = c + 1 : if c = 31 then c = 1
41 peno c
42 CIRCLE (145,90), S1, 1
43 IF S1 = 90 THEN SLEEP 5*10^6 :SCNCLR : GOTO 45
44 GOTO 39
45 draw (1,1 to 320,1)
46 y1 = y1+1
47 c = c+1 : pena c : if c = 31 then c = 1
48 draw (1,y1 to 320,y1)
49 if y1 = 190 then sleep 5*10^6 : scnclr : goto 54
50 goto 46
51 B$ = TRANSLATE$("THANK YOU FOR WATCHING THE DEMO.")
52 X% = NARRATE (B$)
53 end
54 draw (1,1 to 1,190)
55 x2 = x2+1
56 c = c+1 : pena c : if c = 31 then c = 1
57 draw (x2,1 to x2,190)
58 if x2 = 300 then sleep 5*10^6 :scnclr : goto 60
59 goto 55
60 draw (1,1 to 1,1)
61 x3 = x3+1
62 y3 = y3+1
63 c =c+1 : pena c : if c = 31 then c = 1
64 draw (x3,1 to 1,y3)
65 if y3 = 200 then sleep 5*10^6 : scnclr : goto 67
66 goto 61
67 draw (1,190 to 1,1)
68 x5 = x5+1
69 c = c+1 : pena c : if c = 31 then c = 1
70 draw (1,190 to x5,1)
71 if x5 = 320 then goto 73
72 goto 68
73 y6 = y6+1
74 c = c+1 : pena c : if c = 31 then c = 1
75 draw (1,190 to 320,y6)
76 if y6 = 190 then sleep 5*10^6 : scnclr : goto 78
77 goto 73
78 ? "TO EXIT NEXT DEMO PRESS LEFT"
79 ? " MOUSE BUTTON"
80 SLEEP 5*10^6
81 scnclr
82 penb 6
83 paint (50,50)
84 c=1
85 x = 24 : y = 50
86 z = 24 : k = 100
87 dx = 3 : dy =3
88 dz = 6 : dk = 6
89 draw (x,y to z,k)
90 c = c+1 : pena c
91 x = x + dx
92 z = z + dz
93 if x < 4 or x > 300 then dx = - dx
94 if z < 4 or z > 300 then dz = - dz
95 y = y + dy
96 k = k + dk
97 if y < 5 or y > 190 then dy = - dy
98 if k < 5 or k > 190 then dk = -dk
99 if c = 31 then c = 1
100 ask mouse x%, y%, b%
101 if b% <> 0 then goto 103
102 goto 89
103 scnclr
104 c = 1 :pena c
105 draw (100,150 to 100,145 to 105,145 to 150,50 to 145,50)
106 draw (145,50 to 145,45 to 175,45 to 175,50 to 170,50 to 185,145)
107 draw (185,145 to 190,145 to 190,150 to 170,150 to 170,145)
108 draw (170,145 to 175,145 to 168,100 to 136,100)
109 draw (136,100 to 115,145 to 120,145 to 120,150 to 100,150)
110 draw (100,150 to 95,148 to 95,143 to 100,143 to 145,50)
111 draw (145,50 to 140,48 to 140,43 to 170,43 to 175,45)
112 draw (95,143 to 100,145)
113 draw (145,45 to 140,43)
114 draw (115,143 to 120,145)
115 draw (100,143 to 105,145)
116 draw (170,150 to 165,148 to 165,143 to 170,143 to 163,100)
117 draw (170,143 to 175,145)
118 draw (166,90 to 162,60 to 155,60 to 141,90 to 166,90)
119 draw (185,143 to 190,145)
120 draw (161,88 to 157,60)
121 draw (161,88 to 142,88)
122 draw (161,88 to 166,90)
123 draw (165,143 to 170,145)
124 paint (10,10)
125 c = c + 1 : pena c : if c = 31 then goto 127
126 goto 105
127 scnclr
128 pena 1 : paint (10,10)
129 s = 10
130 y1 = 180
131 peno 4
132 circle (160,y1), s, .10
133 y1 = y1-6
134 s = s + ((s*.1)^1.3)
135 if y1 = 12 then sleep 5*10^6 : goto 137
136 goto 131
137 scnclr
138 pena 1
139 paint (10 , 10)
140 xc = 160 : yc = 90 : z = 0 : k =pi / 40
141 n = int(rnd(1)*17)
142 pena n
143 for j = 0 to 1 : next : n = k
144 xd = int (rnd(1) * xc) : yd = int(rnd(1) * yc) : c = int(rnd(1)*5)
145 xa = xc + xd * cos(n) : xb = xc - xd * cos(n)
146 ya = yc + yd * sin(n) : yb = yc - yd * sin(n)
147 draw (xa,ya to xb,yb)
148 n = n + k : if n < pi then 145
149 ask mouse x% , y% , b%
150 if b% <>0 then goto 152
151 for j = 0 to 1 : next : goto 141
152 scnclr
153 x = 320 : y = 200 : c = x * rnd(0) : d = y * rnd (0)
154 a=0 : b=0 : j =0 : k=1 : n=2 : p=1
155 pena j : draw (a,j to c,d to a,y)
156 pena k : draw (a+k,j to c,d to a+k,y)
157 a=a+n : if a < x then 155
158 pena j : draw (j,b to c,d to x,b)
159 pena k : draw (j,b+k to c,d to x,b+k)
160 b=b+n : if b<y then 158
161 sleep 5*10^6 : goto 162
162 scnclr
163 drawmode 1
164 dim d(128,64)
165 input "number of levels 1 through 7" ; le
166 ?"hit c for coustom colours"
167 ?"return for default"
168 get a$ : if a$ = "" then 168
169 if a$ = chr$ (13) then lc = 7 : sc = 10
170 if a$ = "c" then gosub 287
171 ds = 2 : for n =1 to le : ds = ds + 2 ^ (n-1) : next n
172 mx = ds-1 : my = mx / 2
173 rh = pi*30/180 :vt = rh *1.2
174 for n = 1 to le : l = 10000 / 1.8^n
175 ?"working on level" ; n
176 ib = mx / 2^n : sk = ib *2
177 gosub 186
178 gosub 193
179 gosub 200
180 next n
181 scnclr
182 pena 1
183 paint (10,10) ,0
184 goto 235
185 rem******
186 for ye = 0 to mx-1 step sk
187 for xe = ib + ye to mx step sk
188 ax = xe - ib : ay = ye : gosub 208 : d1 = d : ax = xe + ib : gosub 208 : d2 = d
189 d = (d1+d2)/2 + rnd(5) * l / 2 - l / 4 : ax = xe : ay =ye : gosub 213
190 next xe
191 next ye : return
192 rem *************
193 for xe = mx to 1 step -sk
194 for ye = ib to xe step sk
195 ax = xe : ay = ye + ib : gosub 208 : d1 = d : ay = ye -ib : gosub 208 : d2 = d
196 d = (d1+d2) / 2 + rnd(1)* l / 2 - l / 4 : ax = xe : ay =ye : gosub 213
197 next ye
198 next xe : return
199 rem******************
200 for xe= 0 to mx - 1 step sk
201 for ye = ib to mx - xe step sk
202 ax= xe +ye - ib : ay = ye - ib : gosub 208 : d1 = d
203 ax = xe + ye +ib : ay = ye + ib : gosub 208 : d2 = d
204 ax = xe + ye : ay = ye : d= (d1 + d2 )/ 2 + rnd ( 1 ) * l / 2 - l / 4 : gosub 213
205 next ye
206 next xe : return
207 rem****************
208 if ay > my then 210
209 by = ay : bx= ax : goto 211
210 by = mx +1 - ay : bx = mx -ax
211 d= d ( bx , by ) : return
212 rem*************
213 if ay > my then 215
214 by = ay : bx = ax : goto 216
215 by = mx + 1 - ay : bx = mx - ax
216 d( bx , by ) = d : return
217 rem**********************
218 if xo <> -999 then 221
219 if zz < 0 then gosub 280 : z2 = zz : zz = 0 : goto 233
220 gosub 282 : goto 232
221 if z2 > 0 and zz > 0 then 232
222 if z2 <0 and zz < 0 then z2 = zz : zz = 0 : goto 233
223 w3 = zz / (zz-z2) : x3 = (x2-xx)*w3+xx : y3 = (y2-yy)*w3+yy : z3 = 0
224 zt = zz : yt = yy : xt = xx
225 if zz > 0 then 230
226 rem*****************
227 zz = z3 : yy = y3 : xx = x3 : gosub 266
228 gosub 280 : zz = 0 : yy = yt : xx = xt : z2 = zt : goto 233
229 rem ******************
230 zz = z3 : yy = y3 : xx = x3 : gosub 266
231 gosub 282 : zz = zt : yy = yt : xx = xt
232 z2 = zz
233 x2 = xx : y2 = yy : return
234 rem ****************
235 gosub 283
236 xs = .04 : ys = .04 : zs = .04
237 for ax = 0 to mx : xo=-999 : for ay = 0 to ax
238 gosub 208 : zz = d : yy = ay / mx * 10000 : xx = ax / mx *10000 -yy / 2
239 gosub 265 : next ay : next ax
240 for ay = 0 to mx : xo = -999 : for ax = ay to mx
241 gosub 208 : zz = d : yy = ay / mx *10000 : xx = ax / mx *10000 -yy / 2
242 gosub 265 : next ax : next ay
243 for ex = 0 to mx : xo = -999 : for ey = 0 to mx - ex
244 ax = ex + ey : ay = ey : gosub 208 : zz = d : yy = ay / mx *10000
245 xx = ax / mx *10000 - yy / 2 : gosub 265 : next ey : next ex
246 goto 285
247 rem********
248 if xx <> 0 then 251
249 if yy <=0 then ra = - pi / 2 : goto 253
250 ra = pi / 2 : goto 253
251 ra = atn(yy/xx)
252 if xx < 0 then ra = ra + pi
253 r1 = ra + rh : rd = sqr(xx*xx+yy*yy)
254 xx = rd *cos(r1) : yy = rd * sin(r1)
255 return
256 rem******
257 rd = sqr(zz*zz+xx*xx)
258 if xx = 0 then ra = pi / 2 : goto 261
259 ra = atn (zz/xx)
260 if xx <0 then ra = ra+pi
261 r1 = ra-vt
262 xx = rd * cos(r1)+xx : zz = rd * sin(r1)
263 return
264 rem *************
265 gosub 218
266 xx = xx * xs : yy = yy * ys : zz = zz *zs
267 gosub 248
268 gosub 257
269 if xo = - 999 then pr$ = "m"
270 if xo <> -999 then pr$ = "d"
271 xp = int(yy)+cx : yp = int(zz)
272 gosub 275
273 return
274 rem*********
275 xp = xp * 0.625 : yp = 33.14-0.663 *yp
276 if pr$ = "m" then x8 = xp : y8 = yp : xo = x
277 if y8 > 179 or y8 < 0 or yp > 179 or yp< 0 then return
278 draw (x8,y8 to xp,yp)
279 x8 = xp : y8 = yp : return
280 pena sc : return
281 rem***********
282 pena lc : return
283 return
284 rem *******
285 sleep 5*10^6 : goto 51
286 end
287 rem*****
288 input "choose high colour 2 to 16" ; lc
289 input "choose high colour 2 to 16" ; sc
290 return
300 screen 0,5,0
301 rgb 0,6,9,15
302 rgb 1,0,0,2
303 rgb 2,0,0,4
304 rgb 3,0,0,6
305 rgb 4,0,0,8
306 rgb 5,0,0,10
307 rgb 6,0,0,12
308 rgb 7,0,0,14
309 rgb 8,0,1,15
310 rgb 9,0,3,15
311 rgb 10,0,5,15
312 rgb 11,0,7,15
313 rgb 12,0,9,15
314 rgb 13,0,10,15
315 rgb 14,0,11,15
316 rgb 15,0,12,15
317 rgb 16,0,13,15
318 rgb 17,0,15,15
319 rgb 18,1,15,15
320 rgb 19,2,15,15
321 rgb 20,2,15,15
322 rgb 21,3,15,15
323 rgb 22,5,15,15
324 rgb 23,6,15,15
325 rgb 24,7,15,15
326 rgb 25,8,15,15
327 rgb 26,9,15,15
328 rgb 27,10,15,15
329 rgb 28,11,15,15
330 rgb 29,12,15,15
331 rgb 30,13,15,15
332 rgb 31,15,15,15
333 goto 10